/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.customer.facade.info;

import info.peigen.hotpot.business.customer.facade.enums.auth.CustomerCertLevel;
import info.peigen.hotpot.business.customer.facade.enums.auth.CustomerCertMethod;
import info.peigen.hotpot.business.customer.facade.enums.auth.CustomerCertStatus;
import info.peigen.hotpot.business.customer.facade.enums.auth.CustomerCertSubject;
import info.peigen.hotpot.common.core.enums.CertType;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

import java.util.List;

/**
 * <b>(CustomerAuthenticationInfo)</b>
 * 身份验证领域模型
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/7/27
 */
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class CustomerAuthenticationInfo {
    CustomerAuthenticationBaseInfo           customerAuthenticationBaseInfo;
    List<CustomerAuthenticationIdentityInfo> customerAuthenticationIdentityInfos;
    List<CustomerAuthenticationLogInfo>      customerAuthenticationLogInfos;
    /** 客户认证主体 */
    CustomerCertSubject                      customerCertSubject;
    /** 认证状态 */
    CustomerCertStatus                       customerCertStatus;
    /** 证件类型 */
    CertType                                 customerCertType;
    /** 认证方式 */
    CustomerCertMethod                       customerCertMethod;
    /** 认证等级 */
    CustomerCertLevel                        level;
    /** BOPS操作员 */
    BopsOperatorInfo                         bopsOperator;
    /** 备注 */
    String                                   memo;
}
